#include <stdio.h>
#include <stdlib.h>

#define MAX_stu 10

typedef struct
{
    char name[128]; // 姓名
    char sex[5];    // 性别
    short id;       // 学号
    int age;        // 年龄
    int sco;        // 成绩
} stu_data;

typedef struct
{
    stu_data data[MAX_stu]; // 学生   20 代表 20 个座位
    int len;                // 记录学生人数
} stu_class;

int Cmp_func(const void * val_1, const void *val_2)
{
    stu_data s1 = *(stu_data *)val_1;
    stu_data s2 = *(stu_data *)val_2;
    return s1.sco-s2.sco;
}

void printf_Sql_List(stu_class *class)
{
    // 循环
    for (size_t i = 0; i < class->len; i++)
    {
        // 打印数据
        printf("name = %s sex = %s id = %d sco = %d age = %d \n",
               class->data[i].name, class->data[i].sex, class->data[i].id, class->data[i].age, class->data[i].sco);
    }
}
int main(int argc, char const *argv[])
{
    // 创建一个 班级结构体
    stu_class stu = {
        // 学生数据初始化
        .data = {
            {"石昊", "男", 1, 18, 120},
            {"萧炎", "男", 2, 18, 110},
            {"牧尘", "男", 3, 18, 115},
            {"林动", "男", 4, 18, 113},
            {"韩立", "男", 5, 18, 105},
        },
        // 学生个数变量初始化
        .len = 5};

    qsort(stu.data,stu.len,sizeof(stu.data[0]),Cmp_func);

    printf_Sql_List(&stu);

    return 0;
}